#ifndef SHOPDIALOGITEMS_H
#define SHOPDIALOGITEMS_H

#include "gs.h"
#include "gamedialogitem.h"
using namespace gs;

namespace gs{

class ShopDialogBg : public GameDialogItem
{
    Q_OBJECT
public:
    ShopDialogBg(GameDialog*, QPixmap bg);
    QRectF boundingRect() const;
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
protected:
    QPixmap _bg;
};


class ShopDialogOwner : public GameDialogItem
{
    Q_OBJECT
public:
    ShopDialogOwner(GameDialog*, QPixmap);
    QRectF boundingRect() const;
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
protected:
    QPixmap _owner;
};

class ShopDialogText : public GameDialogItem
{
    Q_OBJECT
public:
    ShopDialogText(GameDialog*);
    QRectF boundingRect() const;
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
    static const int WIDTH = 500;
    static const int HEIGHT = 100;
};


class ShopDialogButton : public GameDialogButton
{
    Q_OBJECT
public:
    ShopDialogButton(GameDialog*);
    QRectF boundingRect() const;
    static const int WIDTH = 100;
    static const int HEIGHT = 40;
};



class ShopDialogExitButton : public ShopDialogButton
{
    Q_OBJECT
public:
    ShopDialogExitButton(GameDialog*);
protected:
    void mousePressEvent(QGraphicsSceneMouseEvent *event);
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
};

class ShopDialogHerbalistButton : public ShopDialogButton
{
    Q_OBJECT
public:
    ShopDialogHerbalistButton(GameDialog*);
protected:
    void mousePressEvent(QGraphicsSceneMouseEvent *event);
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
};

class ShopDialogSorcererButton : public ShopDialogButton
{
    Q_OBJECT
public:
    ShopDialogSorcererButton(GameDialog*);
protected:
    void mousePressEvent(QGraphicsSceneMouseEvent *event);
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
};


class ShopDialogPavilionButton : public ShopDialogButton
{
    Q_OBJECT
public:
    ShopDialogPavilionButton(GameDialog*);
protected:
    void mousePressEvent(QGraphicsSceneMouseEvent *event);
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
};

class ShopDialogCemeteryButton : public ShopDialogButton
{
    Q_OBJECT
public:
    ShopDialogCemeteryButton(GameDialog*);
protected:
    void mousePressEvent(QGraphicsSceneMouseEvent *event);
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
};
}

#endif // SHOPDIALOGITEMS_H
